#ifndef __UTILS_CRC16_H
#define __UTILS_CRC16_H

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif


/**
 * @brief  计算CRC16校验，初值0xFFFF  polynomial: 0x1021
 * @param  pdata            需要计算CRC16的数据串指针
 * @param  len              数据长度
 * @return uint16_t CRC16校验值
 */
uint16_t stdlib_get_crc16(void *pdata, uint32_t len);

/**
 * @brief 计算CRC16校验，初值0xFFFF  polynomial: 0x1021
 * @param  buf              需要计算CRC16的数据串指针
 * @param  count            数据长度
 * @return unsigned short CRC16校验值
 */
unsigned short stdlib_get_crc16_xmodem(const unsigned char *buf, unsigned int count);

#ifdef __cplusplus
}
#endif

#endif // __UTILS_CRC16_H